using System;
using System.Collections.Generic;
using System.Text;

namespace MVCFramework.View
{
    /// <summary>
    ///ViewStateAbstract Draws the Main Scene on OpenGL Components.
    /// </summary>
    public abstract class ViewStateAbstract
    {
        //  View State Contains the procedural Drawing Tamplete ( what to Draw : model , plane ,points ...) 
        // And Also how How to Draw for some it (ec Plane , snapPoints) or push to OpenGL Visitors that Contain
        // the How to Draw Knowledge. 

        public ViewStateAbstract()
        {
        }

        private IVisitor loadVisitor;//not belong here. unification with modelVisitor
        protected IVisitor LoadVisitor
        {
            get { return loadVisitor; }
            set { loadVisitor = value; }
        } //not belong here

        private IVisitor modelVisitor;
        public IVisitor ModelVisitor
        {
            get { return modelVisitor; }
            set { modelVisitor = value; }
        }

        protected IModel _model;
        public virtual IModel Model
        {
            get { return _model; }
            set { _model = value; }
        }

        public abstract void DispalyView();

    }
}
